/**
 * 线程中断的练习:如果有线程在休眠，想提前终止休眠，可以使用interrupted来中断休眠
 */

public class ThreadInterrupt {
    public static void main(String args[])
    {
        T1 t1 = new T1();
        t1.setName("石文学");
        t1.start();

        //当主线程打印5个hi时，就中断子线程的休眠
        for (int i = 0; i <5 ; i++) {
            try {
                Thread.sleep(300);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("hi"+i);
        }
        t1.interrupt();//当主线程执行到这里时，就会中断T线程的休眠
    }
}

class T1 extends Thread
{
    @Override
    public void run() {
        while (true)
        {
            for (int i = 0; i <100 ; i++) {
                System.out.println(Thread.currentThread().getName()+"吃包子......"+i);
            }
            try {
                System.out.println(Thread.currentThread().getName()+"休眠中.....");
                Thread.sleep(20*1000);//休眠20s
            } catch (InterruptedException e) {
                //当该线程捕获到一个Interrupt方法时，就会catch一个异常，可以加入自己的业务代码
                System.out.println(Thread.currentThread().getName()+"被 interrupt了");
            }
        }
    }
}
